package com.itheima.Test;

import java.util.*;

/**
 * 试题功能要求：
 *
 * 1.要求用户输入一个长度大于或等于10的字符串，包含字母数字特殊字符。
 *
 * 2.截取字符串的第3位到第7位(包含第3位和第7位)，将取出的字符串转换为字符数组，并按照升序排序，输出排序后的结果。
 *
 * 3.统计chars字符数组每个字符的个数，并存入相应的map集合。字符作为键，个数作为值。
 *
 * 4.遍历map集合。
 */
public class Test {
    public static void main(String[] args) {
        System.out.println("请输入一个长度大于10的字符串，包含字母数字特殊符号：");
        Scanner scanner = new Scanner(System.in);
        String str = scanner.nextLine();
        //判断字符串的长度，如果长度小于10则重新输入
        while (str.length() < 10) {
            str = scanner.nextLine();
        }

        //截取字符串的第3位到第7位（包含第3位和第7位），注意判断第3位和第7位的下标
//        String newStr = str.substring(3, 7);
        String newStr = str.substring(2, 7);
        //将取出的字符串转换为字符数组，并按照升序排序，输出排序后的结果
        char[] chars = newStr.toCharArray();
        Arrays.sort(chars);
        System.out.println(Arrays.toString(chars));

        //统计newStr字符串每个字符的个数，并存入相应的map集合。字符作为键，个数作为值
        HashMap<Character, Integer> map = new HashMap<>();
        for (int i = 0; i < chars.length; i++) {
            char c = chars[i];
            Integer num = map.get(c);
            if (!map.containsKey(c)) {
                map.put(c, 1);
            }else {
                num++;
                map.put(c, num);
            }
        }

        //遍历map集合
//        Set<Map.Entry<Character, Integer>> set = map.entrySet();
//        for (Map.Entry<Character, Integer> entry : set) {
//            Character key = entry.getKey();
//            Integer value = entry.getValue();
//            System.out.println(key + " ---> " + value);
//        }

        Set<Character> set = map.keySet();
        for (Character ch : set) {
            System.out.println(ch + "(" + map.get(ch) + ")");
        }


    }
}
